﻿#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QFile>
#include <QTextCodec>
#include <QFileInfo>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 点击btn弹出文件对话框
    connect(ui->pushButton,&QPushButton::clicked,[=](){
        QString path = QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\14814\\Desktop");
        // 将路径放到lineedit中
        ui->lineEdit->setText(path);

        // 编码格式类
        QTextCodec* codec=QTextCodec::codecForName("utf-8");

        // 将读取内容放入到 textedit 中
        // QFile默认支持的格式是UTF-8
        // QFile对象构造函数就是要读取的路径
        QFile file(path);

        // 设置打开方式 只读
        file.open(QIODeviceBase::ReadOnly);
        // 获取文件内的所有数据
        //QByteArray arr = file.readAll();

        QByteArray arr;

        while(!file.atEnd())
        {
            // 按行读
            arr+=file.readLine();
        }

        // 将读取的数据放入到textedit中
        ui->textEdit->setText(arr);
        // 转码
        // ui->textEdit->setText(codec->toUnicode(arr));

        // 关闭文件
        file.close();

        // 用追加的方式写数据
        file.open(QIODevice::Append);
        file.write("sdagadfgdfgsdag");
        file.close();


        // QFileInfo 文件信息类
        QFileInfo info(path);
        // 输出字节数和后缀名称
        qDebug()<<"size"<<info.size()<<"suffix"<<info.suffix();
        qDebug()<<"create time"<<info.birthTime();

    });

}

Widget::~Widget()
{
    delete ui;
}
